Better baseline adjustment
authorMatthias Clasen <mclasen@redhat.com>
Thu, 25 Feb 2016 21:36:13 +0000 (16:36 -0500)
committerMatthias Clasen <mclasen@redhat.com>
Thu, 25 Feb 2016 21:36:13 +0000 (16:36 -0500)
The way we were adjusting baselines if min-height forces
a size increase was not quite working as intended. Redo
it in a simpler way: just split up the excess and count
half of it for above the baseline and half below.

This fixes button labels in dialogs appearing too low.

gtk/gtkcssgadget.c

index b907839dc2f73a543f43ea2b769cc2a2a021a6be..f95db8a472bcc8cf71a15276e7f716569323b499 100644 (file)
@@ -577,14 +577,12 @@ gtk_css_gadget_get_preferred_size (GtkCssGadget   *gadget,
 
   if (minimum_baseline && *minimum_baseline > -1)
     {
-      if (*minimum > 0)
-        *minimum_baseline = *minimum_baseline * forced_minimum / *minimum;
+      *minimum_baseline += 0.5 * (forced_minimum - *minimum);
       *minimum_baseline = MAX (0, *minimum_baseline + extra_baseline);
     }
   if (natural_baseline && *natural_baseline > -1)
     {
-      if (*natural > 0)
-        *natural_baseline = *natural_baseline * forced_natural / *natural;
+      *natural_baseline += 0.5 * (forced_natural - *natural);
       *natural_baseline = MAX (0, *natural_baseline + extra_baseline);
     }